<?php
$pacote = "classes/conversores";
$pathToThis = pathinfo(__FILE__);
$root = substr($pathToThis['dirname'], 0, strlen($pathToThis['dirname']) - strlen($pacote) - 1);

require_once $root."/classes/base/Conversor.class.php";

class ConversorDataHumanaSql extends Conversor {

    function ConversorDataHumanaSql() {
    }
    
    function converte($valor) {
    	$exp = explode("/", $valor);
    	$nrEl = count($exp);
    	for($i = 0; $i < $nrEl; $i++)
    		$exp[$i] = intval($exp[$i]); // Converte todos os campos para inteiro
    	$errStr = "Erro na convers&atilde;o da data: ";
    	if($nrEl != 3)
    		throw new ConvertException($errStr."Numero de elementos diferente de 3");
		if(!checkdate($exp[1], $exp[0], $exp[2]))
			throw new ConvertException($errStr."A data n&atilde;o existe no calend&aacute;rio");
		if($exp[0] > 31 || $exp[0] < 1)
			throw new ConvertException($errStr."Valor do dia fora do intervalo [01-31]");
		if($exp[1] > 12 || $exp[1] < 1)
			throw new ConvertException($errStr."Valor do mes fora do intervalo [01-12]");
		if(strlen($exp[2]) != 4 || $exp[2] < 1)
			throw new ConvertException($errStr."Valor do ano contem menos de duas casas ou menor que 0001");
    	return $exp[2]."-".$exp[1]."-".$exp[0];
    }
    
    public function getTipo() {
    	return "data";
    }
}
?>